home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / noweb / src / shell / noweave < prev    next >
Text File  |  1995-02-24  |  12KB  |  221 lines

  1. #!/bin/sh
  2. # Copyright 1991 by Norman Ramsey.  All rights reserved.
  3. # See file COPYRIGHT for more information.
  4. LIB=|LIBDIR|
  5. markup=$LIB/markup backend=$LIB/totex
  6. wrapper= delay= args= markopts= noweboptions= autodefs= verbose=
  7. noquote="-noquote" docanchor= noindex="-noindex"
  8. filtera= filterb= filterc= filterd= filtere=
  9. pass2setcmd="set ignore"
  10. for i do
  11.   pass2setcmd="$pass2setcmd '$i'"
  12. done
  13. while [ $# -gt 0 ]; do
  14.   case $1 in
  15.     -latex)      if [ "$wrapper" != "none" ]; then wrapper=latex; fi ;;
  16.     -tex)        wrapper=tex ;;
  17.     -html)       if [ "$wrapper" != "none" ]; then wrapper=html; fi; 
  18.                  backend="$LIB/tohtml -localindex";        
  19.                  noquote=""; docanchor="-docanchor 10" ;;
  20.     -latex+html) if [ "$wrapper" != "none" ]; then wrapper=latex; fi; 
  21.                  backend="$LIB/tohtml -localindex -raw"
  22.                  noquote=""; docanchor="-docanchor 10" ;;
  23.     -n)          wrapper=none ;;
  24.     -backend)    backend="$2" ; shift ;;
  25.     -markup)     markup="$2"  ; shift ;;
  26.     -filter)    shift                                                               ;;
  27.     -x)                         ;;
  28.     -index)            noindex= ;;
  29.     -indexfrom) shift; noindex= ;;
  30.     -autodefs) newfilter="$LIB/autodefs.$2"
  31.                if [ -r $newfilter ]; then if   [ -z "$filtera" ]; then
  32.                                             filtera="$newfilter"
  33.                                           elif [ -z "$filterb" ]; then
  34.                                             filterb="$newfilter"
  35.                                           elif [ -z "$filterc" ]; then
  36.                                             filterc="$newfilter"
  37.                                           elif [ -z "$filterd" ]; then
  38.                                             filterd="$newfilter"
  39.                                           elif [ -z "$filtere" ]; then
  40.                                             filtere="$newfilter"
  41.                                           else
  42.                                             echo "$0: ran out of filters" 1>&2
  43.                                             exit 1
  44.                                           fi
  45.                else echo "$0: don't know how to find definitions for '$2'" 1>&2; exit 1
  46.                fi
  47.                shift
  48.                ;;
  49.     -showautodefs) foundautodefs=
  50.                    for i in $LIB/autodefs.*; do
  51.                      if [ -r $i ]; then
  52.                        echo "This `basename $0` supports -autodefs $i" | 
  53.                                            sed "s@$LIB/autodefs\.@@" 1>&2
  54.                        foundautodefs=$i
  55.                      fi
  56.                    done
  57.                    if [ -z "$foundautodefs" ]; then
  58.                      echo "This `basename $0` does not support -autodefs"
  59.                    fi; exit 1 ;;
  60.     -option) newopt="$2"; shift; if [ -z "$noweboptions" ] ; then noweboptions="$newopt"
  61.                                  else noweboptions="$noweboptions,$newopt"
  62.                                  fi ;;
  63.     # -nodelay) delay= ;;
  64.     -delay)   delay="-delay" ; wrapper=none ;;
  65.     -t*) markopts="$markopts $1" ;;
  66.     -v) verbose=1 ;;
  67.     -*) echo "$0: Unrecognized option '$1'" 1>&2 ; echo "Usage: $0 [options] [files]" 1>&2
  68.                                                    echo "Options recognized are:" 1>&2
  69. echo "-latex            Use LaTeX headers and trailers (default)." 1>&2
  70. echo "-tex              Use TeX headers and trailers." 1>&2
  71. echo "-html             Use HTML headers and trailers." 1>&2
  72. echo "-latex+html       Assume LaTeX in documentation, but use HTML in code." 1>&2
  73. echo " -n               Don't use any header or trailer." 1>&2
  74. echo "-markup frontend  Parse input with frontend (e.g., numarkup)." 1>&2
  75. echo "-x                Use the default cross-referencer (needs LaTeX or HTML)." 1>&2
  76. echo "-index            Create index using identifiers defined in input files." 1>&2
  77. echo "-indexfrom defs   Create index of identifers listed in file defs." 1>&2
  78. echo "-filter cmd       Filter through 'cmd' before weaving; cmd could prettyprint" 1>&2
  79. echo "                  or perform other functions." 1>&2
  80. echo "-autodefs lang    Source is in language 'lang'; find definitions automatically." 1>&2
  81. echo "-showautodefs     List languages that can be used with -autodefs" 1>&2
  82. echo "-option opt       Add \noweboptions{opt} to header (latex only)" 1>&2
  83. echo "-delay            Delay markup until after first documentation chunk." 1>&2
  84. echo "-tk               Expand tab stops every k columns" 1>&2
  85. echo "-t                Copy tabs to the output" 1>&2
  86. echo "-v                Print pipeline on standard error" 1>&2; exit 1 ;;
  87.     *)  arg="$arg $1" ;;
  88.   esac
  89.   shift
  90. done
  91. if [ -z "$wrapper" ]; then wrapper=latex; fi
  92. eval $pass2setcmd
  93. shift
  94. while [ $# -gt 0 ]; do
  95.   case $1 in
  96.     -filter) 
  97.         newfilter="$2" ; shift ;                  if   [ -z "$filtera" ]; then
  98.                                                     filtera="$newfilter"
  99.                                                   elif [ -z "$filterb" ]; then
  100.                                                     filterb="$newfilter"
  101.                                                   elif [ -z "$filterc" ]; then
  102.                                                     filterc="$newfilter"
  103.                                                   elif [ -z "$filterd" ]; then
  104.                                                     filterd="$newfilter"
  105.                                                   elif [ -z "$filtere" ]; then
  106.                                                     filtere="$newfilter"
  107.                                                   else
  108.                                                     echo "$0: ran out of filters" 1>&2
  109.                                                     exit 1
  110.                                                   fi ;;
  111.     -x) newfilter="$LIB/noidx $docanchor $delay"; if   [ -z "$filtera" ]; then
  112.                                                     filtera="$newfilter"
  113.                                                   elif [ -z "$filterb" ]; then
  114.                                                     filterb="$newfilter"
  115.                                                   elif [ -z "$filterc" ]; then
  116.                                                     filterc="$newfilter"
  117.                                                   elif [ -z "$filterd" ]; then
  118.                                                     filterd="$newfilter"
  119.                                                   elif [ -z "$filtere" ]; then
  120.                                                     filtere="$newfilter"
  121.                                                   else
  122.                                                     echo "$0: ran out of filters" 1>&2
  123.                                                     exit 1
  124.                                                   fi ;;
  125.     -index)  
  126.         newfilter="$LIB/finduses $noquote" ;      if   [ -z "$filtera" ]; then
  127.                                                     filtera="$newfilter"
  128.                                                   elif [ -z "$filterb" ]; then
  129.                                                     filterb="$newfilter"
  130.                                                   elif [ -z "$filterc" ]; then
  131.                                                     filterc="$newfilter"
  132.                                                   elif [ -z "$filterd" ]; then
  133.                                                     filterd="$newfilter"
  134.                                                   elif [ -z "$filtere" ]; then
  135.                                                     filtere="$newfilter"
  136.                                                   else
  137.                                                     echo "$0: ran out of filters" 1>&2
  138.                                                     exit 1
  139.                                                   fi
  140.         newfilter="$LIB/noidx $docanchor $delay"; if   [ -z "$filtera" ]; then
  141.                                                     filtera="$newfilter"
  142.                                                   elif [ -z "$filterb" ]; then
  143.                                                     filterb="$newfilter"
  144.                                                   elif [ -z "$filterc" ]; then
  145.                                                     filterc="$newfilter"
  146.                                                   elif [ -z "$filterd" ]; then
  147.                                                     filterd="$newfilter"
  148.                                                   elif [ -z "$filtere" ]; then
  149.                                                     filtere="$newfilter"
  150.                                                   else
  151.                                                     echo "$0: ran out of filters" 1>&2
  152.                                                     exit 1
  153.                                                   fi ;;
  154.     -indexfrom)
  155.         newfilter="$LIB/finduses $noquote $2";    if   [ -z "$filtera" ]; then
  156.                                                     filtera="$newfilter"
  157.                                                   elif [ -z "$filterb" ]; then
  158.                                                     filterb="$newfilter"
  159.                                                   elif [ -z "$filterc" ]; then
  160.                                                     filterc="$newfilter"
  161.                                                   elif [ -z "$filterd" ]; then
  162.                                                     filterd="$newfilter"
  163.                                                   elif [ -z "$filtere" ]; then
  164.                                                     filtere="$newfilter"
  165.                                                   else
  166.                                                     echo "$0: ran out of filters" 1>&2
  167.                                                     exit 1
  168.                                                   fi
  169.         newfilter="$LIB/noidx $docanchor $delay"; if   [ -z "$filtera" ]; then
  170.                                                     filtera="$newfilter"
  171.                                                   elif [ -z "$filterb" ]; then
  172.                                                     filterb="$newfilter"
  173.                                                   elif [ -z "$filterc" ]; then
  174.                                                     filterc="$newfilter"
  175.                                                   elif [ -z "$filterd" ]; then
  176.                                                     filterd="$newfilter"
  177.                                                   elif [ -z "$filtere" ]; then
  178.                                                     filtere="$newfilter"
  179.                                                   else
  180.                                                     echo "$0: ran out of filters" 1>&2
  181.                                                     exit 1
  182.                                                   fi
  183.         shift ;;
  184.   esac
  185.   shift
  186. done
  187. (
  188. case $wrapper in
  189.   none) ;;
  190.   latex)  echo "@header $wrapper $noweboptions" ;;
  191.   *)  echo "@header $wrapper $arg" ;;
  192. esac
  193. PATH="$PATH:$LIB" 
  194. export PATH
  195. if [ -n "$verbose" ]; then
  196.   echo $markup $arkopts $arg '|' 1>&2
  197.   if   [ -n "$filtera" ]; then echo $filtera '|' 1>&2; fi
  198.   if   [ -n "$filterb" ]; then echo $filterb '|' 1>&2; fi
  199.   if   [ -n "$filterc" ]; then echo $filterc '|' 1>&2; fi
  200.   if   [ -n "$filterd" ]; then echo $filterd '|' 1>&2; fi
  201.   if   [ -n "$filtere" ]; then echo $filtere '|' 1>&2; fi
  202. fi
  203. if   [ -z "$filtera" ]; then
  204.   $markup $markopts $arg
  205. elif [ -z "$filterb" ]; then
  206.   $markup $markopts $arg | $filtera
  207. elif [ -z "$filterc" ]; then
  208.   $markup $markopts $arg | $filtera | $filterb
  209. elif [ -z "$filterd" ]; then
  210.   $markup $markopts $arg | $filtera | $filterb | $filterc
  211. elif [ -z "$filtere" ]; then
  212.   $markup $markopts $arg | $filtera | $filterb | $filterc | $filterd
  213. else
  214.   $markup $markopts $arg | $filtera | $filterb | $filterc | $filterd | $filtere
  215. fi
  216. if [ "$wrapper" != "none" ]; then echo "@trailer $wrapper"; fi
  217. ) |
  218. $backend $noindex $delay
  219. if [ -n "$verbose" ]; then echo $backend $noindex $delay 1>&2; fi
  220. exit $?
  221.